package cn.sany.cterminal.common;


import cn.sany.cterminal.common.constants.CommonConst;
import cn.sany.cterminal.common.enumeration.ReturnStateEnum;

import java.io.Serializable;

/**
 *
 * @Project : forklift
 * @Package : cn.sany.forklift.common
 * @Class : CommonReturn
 * @Description : 通用返回
 * @author : zhouxing
 * @CreateDate : 2020-07-14 17:16:20
 * @version : V0.5
 * @Copyright : 2020 sany.com Inc. All rights reserved.
 * @Reviewed :
 * @UpateLog :    Name    Date    Reason/Contents
 *             ---------------------------------------
 *                ****    ****    ****
 *
 */
public class CommonReturn implements Serializable{
	
	/** 
	 *  序列id
	 */ 
	private static final long serialVersionUID = -459008162643656247L;

	/** 返回结果标识：0-成功；1-失败；其它以4位非零数字表示 **/
	private int resultCode;
	
	/** 返回结果说明：中文提示语 **/
	private String resultMsg;
	
	/** 业务返回值 **/
	private Object data;
	/** 是否加密 **/
	private boolean encryp;
	
	
	/**
	 * 
	 *  空构造器
	 * @author : wangjing 
	 * @CreateDate: 2017年7月18日 下午2:00:46
	 */
	public CommonReturn() {
		this.data = "";
	}
	
	
	/**
	 * 有参构造器
	 * @author : wangjing 
	 * @CreateDate: 2017年7月18日 下午2:01:10  
	 * @param resultCode 返回结果标识
	 * @param resultMsg 返回结果说明：中文提示语
	 * @param data 业务返回值
	 */
	public CommonReturn(int resultCode, String resultMsg, Object data) {
		this.resultCode = resultCode;
		this.resultMsg = resultMsg;
		this.data = data == null ? "" : data;
	}
	
	/**
	 * 根据状态码构造返回信息 
	 * @author : wangjing 
	 * @CreateDate: 2017年7月18日 下午9:09:05  
	 * @param stateEnum
	 * @param data
	 */
	public CommonReturn(ReturnStateEnum stateEnum, Object data){
		this.resultCode = stateEnum.getCode();
		this.resultMsg = stateEnum.getMsg();
		this.data = data == null ? "" : data;
	}
	/**
	 * 根据状态码构造返回信息
	 * @author : peili 
	 * @CreateDate: 2017年7月25日 下午3:35:16  
	 * @param stateEnum
	 */
	public CommonReturn(ReturnStateEnum stateEnum){
		this.resultCode = stateEnum.getCode();
		this.resultMsg = stateEnum.getMsg();
		this.data = "";
	}

	/**
	 * 有参构造器
	 * @author : wangxichun
	 * @CreateDate: 2017年7月18日 下午3:26:10
	 * @param resultCode
	 * @param resultMsg
	 */
	public CommonReturn(int resultCode, String resultMsg) {
		this.resultCode = resultCode;
		this.resultMsg = resultMsg;
		this.data = data == null ? "" : data;
	}

	public static CommonReturn failReturn() {
		return new CommonReturn(CommonConst.FAIL_CODE, CommonConst.FAIL_DESC);
	}

	public boolean isEncryp() {
		return encryp;
	}

	public void setEncryp(boolean encryp) {
		this.encryp = encryp;
	}
	public int getResultCode() {
		return resultCode;
	}

	public void setResultCode(int resultCode) {
		this.resultCode = resultCode;
	}

	public String getResultMsg() {
		return resultMsg;
	}

	public void setResultMsg(String resultMsg) {
		this.resultMsg = resultMsg;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data == null ? "" : data;
	}
}
